package edu.mis.modules.role;

import com.jfinal.core.Controller;

import edu.mis.model.Role;
import edu.mis.modules.user.UserService;

/**
 * 权限控制器
 *
 */
public class RoleController extends Controller {
	
	static RoleService service = new RoleService();
	static UserService userService = new UserService();
	
	public void index() {
		if(userService.findUserWithRole().equals(1)) {
			render("role.html");
		}
		else {
			render("noAllAuthority.html");
		}
	}
	
	public void list(){
		setAttr("data", service.findAllRole());
		renderJson();  
	}
	
	/**
	 * 权限视图
	 */
	public void add() {
		    //render("add.html");  //（默认对应add.html，否则需显性指定，如render("addRole.html")）
	}

	public void register(){
		Role role  =  getModel(Role.class);   //使用getModel方法获取表单值，表单中name应使用对象名.属性名
		if(service.register(role)){
			setAttr("result", true); 
			setAttr("msg", "添加权限成功!"); 
		}else{
			setAttr("result",false);
			setAttr("msg", "添加权限失败，权限名重复!"); 
		}
		renderJson(); 
	}
	
	/**
	 * 修改权限视图（默认对应edit.html，否则需显性指定，如render("editRole.html")，）
	 */
	public void edit() {
		setAttr("role", service.findRoleByRoleId(getParaToInt("roleId")));  //此处role应与表单中${(role.name)!}等中的role保持一致。
	}
	
	public void updateRole(){
		int roleId=this.getParaToInt("roleId");   //使用getPara获取表单值，与getModel方法获得表单值不同，name不能使用对象名.属性名
		String role = this.getPara("roleName");
		if(service.updateRole(roleId, role)){
			setAttr("result", true);
			setAttr("msg", "修改权限名成功!");
		}else{
			setAttr("result", false);
		}
		renderJson();
	}
	
	/**
	 * 删除权限
	 * 
	 */
	public void delete() {
		if(service.deleteRoleByRoleId(getParaToInt("roleId"))){
			setAttr("result", true);
			setAttr("msg", "删除权限成功!");
		}else{
			setAttr("result", false);
		}
		renderJson();
	}
	
}


